/* $Header: ov_cmds.c,v 2.2 01/10/02 10:29:21 przybyls Exp $ */

/***********************************************************************/
/*                                                                     */
/*                  Copyright Hewlett-Packard Co. 1991                 */
/*                                                                     */
/***********************************************************************/

/***********************************************************************/
/* MODULE NAME: ov_cmds.c                                              */
/* ============                                                        */
/*                                                                     */
/* Author:  Bob Cook                                                   */
/*                                                                     */
/* MODULE PURPOSE: This module will handle the chem comm commands.     */
/*                                                                     */
/*                                                                     */
/***********************************************************************/

/*
 */

/*****************************/
/*   GLOBAL INCLUDE FILES    */
/*****************************/

#include <typedefs.h>

#include <error.h>

#include <mio.h>
#include <cmd_set.h>
#include <cmdproc.h>
#include <method.h>
#include <hostutil.h>
#include <cmd_tbls.h>


/*****************************/
/*   LOCAL INCLUDE FILES     */
/*****************************/



/*****************************/
/*   GLOBAL VARIABLES        */
/*****************************/


/*****************************/
/*   EXTERNAL VARIABLES      */
/*****************************/


/*****************************/
/*   LOCAL DEFINES           */
/*****************************/


/*****************************/
/*   STATIC VARIABLES        */
/*****************************/


/*****************************/
/*   MACROS                  */
/*****************************/



/*****************************/
/*   IMPLEMENT SECTION       */
/*****************************/



/***********************************************************************/
/* FUNCTION: DoOVEO                                                    */
/* ========                                                            */
/*                                                                     */
/* PURPOSE: Echo command.                                              */
/*                                                                     */
/* RETURNED VALUE: length of response string                           */
/*                                                                     */
/* WARNINGS:                                                           */
/*                                                                     */
/*                                                                     */
/***********************************************************************/

INT16 DoOVEO(CMD_TYPE *p_cmd,BIT8  *p_resp_parm)
{
U_INT16 len;

   len = 0;

   if (p_cmd->parmv[0] == 1)
   {
      len = PutAsciiParam((BIT8 *)"\"", p_resp_parm);
      len += PutAsciiParam((BIT8 *)&(p_cmd->parms[p_cmd->parmv[1]]),
                                     p_resp_parm+len);
      len += PutAsciiParam((BIT8 *)"\"", p_resp_parm+len);
      return len;
   }
   else
   {
      CmdErrorHandler(p_cmd,1,INVALID_PARAM);
      return NO_RESPONSE;
   }
}

/***********************************************************************/
/* END FUNCTION: DoOVEO                                                */
/***********************************************************************/



/***********************************************************************/
/* FUNCTION: OVOpcodes                                                 */
/* ========                                                            */
/*                                                                     */
/* PURPOSE: calls routines needed to implement the OV commands.        */
/*                                                                     */
/* RETURNED VALUE: none                                                */
/*                                                                     */
/* GLOBALS USED:                                                       */
/*                                                                     */
/* FILE SCOPE STATICS USED:                                            */
/*                                                                     */
/*                                                                     */
/* CALLS:                                                              */
/*                                                                     */
/* LIMITATIONS:                                                        */
/*                                                                     */
/* WARNINGS:                                                           */
/*                                                                     */
/*                                                                     */
/***********************************************************************/

INT16 OVOpcodes(CMD_TYPE  *p_cmd,BIT8  *p_resp_parm,U_INT16 max_resp_len)
{
INT16           parm_len;

   (void) max_resp_len;

   parm_len = NO_RESPONSE;
   switch( p_cmd->opcode.int_op )
   {
      case  MAKEINT('T','R'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVTR);
        break;
      case  MAKEINT('T','I'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVTI);
        break;
      case  MAKEINT('T','Z'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVTZ);
        break;
      case  MAKEINT('C','R'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVCR);
        break;
      case  MAKEINT('S','P'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVSP);
        break;
      case  MAKEINT('C','F'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVCF);
        break;
      case  MAKEINT('C','W'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVCW);
        break;
      case  MAKEINT('Z','W'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVZW);
        break;
      case  MAKEINT('S','T'):
        parm_len = DoStatus(p_cmd, p_resp_parm, &mOVST);
        break;
      case  MAKEINT('T','P'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVTP);
        break;
      case  MAKEINT('C','L'):
        parm_len = DoCmd(p_cmd, p_resp_parm, &mOVCL);
        break;
      case  MAKEINT('L','S'):
        parm_len = DoStatus(p_cmd, p_resp_parm, &mOVLS);
        break;
      case  MAKEINT('E','O'):
        parm_len = DoOVEO(p_cmd,p_resp_parm);
        break;
      default:
         parm_len = NO_RESPONSE;
         CmdErrorHandler(p_cmd,0,INVALID_OP);
         break;
   }
   return parm_len;
}


/***********************************************************************/
/* END FUNCTION: OVOpcodes                                             */
/***********************************************************************/



/***********************************************************************/
/* FUNCTION: OV_Cmds                                                   */
/* ========                                                            */
/*                                                                     */
/* PURPOSE: calls function which executes a command if one is          */
/*          available on the command queue.                            */
/*                                                                     */
/* RETURNED VALUE: none                                                */
/*                                                                     */
/* GLOBALS USED:                                                       */
/*                                                                     */
/* FILE SCOPE STATICS USED:                                            */
/*                                                                     */
/*                                                                     */
/* CALLS:                                                              */
/*                                                                     */
/* LIMITATIONS:                                                        */
/*                                                                     */
/* WARNINGS:                                                           */
/*                                                                     */
/*                                                                     */
/***********************************************************************/

void OV_Cmds(void)
{
   ExecCmds(&OV_Cmd_Q,OVOpcodes);
}

/***********************************************************************/
/* END FUNCTION: OV_Cmds                                               */
/***********************************************************************/

